The computer and computer related industries have benefitted from a rapidly increasing availability of data processing functions. Along with this benefit comes the problem of how to present the great number and variety of available functions to the interactive operator or user in display interfaces which are relatively easy to use. In recent years, the hierarchal tree has been a widely used expedient for helping the user to keep track of and organize the operative and available functions. In typical tree structures such as those in Microsoft Windows 95.TM. and IBM Lotus.TM. systems, there is presented on the display screen a variety of operating and available functions and resources in tree hierarchies with classes and subclasses of functions and resources displayed as objects or elements at nodes in a descending and widening order based upon some kind of derivation from the next higher class or subclass. In conventional tree displays, it is customary to show the tree on one region of the screen and to permit the user to interactively select any object on the screen for a detail view showing attributes or properties of the selected object or of child objects of the selected object. Such child objects may be said to be derived or comprehended by the selected or parent object. This detail view is customarily displayed in a second region of the screen which is separate from the tree view. These conventional interfaces operate effectively with relatively simple tree structures, particularly when the tree is small enough to be displayed within the portion of the screen allocated for the tree view. However, with the great increase of functions available in computers, it is now often the situation that the displayed trees will be greatly expanded and have many nodes and branches. With these more complex trees, the entire tree may not be viewed in the tree view region of a screen and extensive scrolling has to be done in order to view all portions of the tree. This complicates user interaction, particularly in situations where the user needs to view and compare objects or properties of objects which are in portions of the tree remote from each other. Also, when the user needs to move objects from one part of a tree to another part of the tree, the inability to view source and destination points of the potential object transfer simultaneously on the screen complicates the user interaction.
It should also be noted that the tree hierarchical structure is one of the primary organizational expedients in the object oriented programming processes which have become more prevalent over the past decade. In object oriented programming systems there are many implementations in which there are hierarchies of child objects in subclasses of parent object classes wherein the child objects inherit at least some attributes of the parent objects. The present invention may be advantageously used with such tree hierarchies. Like the trees described above, it is not unusual in object oriented programming to have very elaborate and extensive hierarchal relationships displayed in tree views.
Before proceeding with the description of the invention, it is important that we clarify the terminology used in describing the present invention with respect to terminology used in the art. The typical tree structure used in interactive displays has a plurality of levels of nodes at which elements are displayed. Such elements may be in text or icon form. The elements each represent a function or resource of the system or program which is to be interactively accessed through the displayed tree. It is customary to refer to these displayed elements as objects so as to conveniently use the terms child objects or parent objects in describing various hierarchical relationships between objects. It should be understood that in object oriented programming the term object is, of course, extensively used to represent the basic program units. Thus, it may sometimes be the case that the object in a displayed tree does represent an object in an object oriented program. However, since trees of displayed objects are used to interface with many systems not involving object oriented programming, the use of the word object is not intended to limit the description or claim to object oriented applications. The terms object and elements as used in the claims should be considered as substantially equivalent.